#include "mypushbutton.h"
#include<QDebug>
#include<QPropertyAnimation>
//MyPushButton::MyPushButton(QWidget *parent) :
//    QPushButton(parent)
//{
//}
MyPushButton::MyPushButton(QString normalImg,QString pressImg)
{
    normalImgPath=normalImg;
    pressImgPath=pressImg;

    QPixmap pix;
    bool ret=pix.load(normalImg);
    if(!ret)
    {
        qDebug()<<"图片加载失败！";
        return;
    }
    //设置按钮固定大小 将按钮长宽设置为图片的长宽
    this->setFixedSize(pix.width(),pix.height());
    //设置不规则按钮样式  此处将按钮改为圆形
    this->setStyleSheet("QPushButton{border:0px;}");
    //设置图标
    this->setIcon(pix);

    //设置图标大小
    this->setIconSize(QSize(pix.width(),pix.height()));



//    connect(this,&QPushButton::clicked,[=](){
//        pix.load(pressImg);
//        this->setFixedSize(pix.width(),pix.height());
//        //设置不规则按钮样式  此处将按钮改为圆形
//        this->setStyleSheet("QPushButton{border:0px;}");
//        //设置图标
//        this->setIcon(pix);

//        //设置图标大小
//        this->setIconSize(QSize(pix.width(),pix.height()));
//    });
}
void MyPushButton::zoom1()
{
    //创建动态对象
    QPropertyAnimation *animation=new QPropertyAnimation(this,"geometry");
    //设置动画时间间隔
    animation->setDuration(200);
    //起始位置
    animation->setStartValue(QRect(this->x(),this->y(),this->width(),this->height()));
    //结束位置
    animation->setEndValue(QRect(this->x(),this->y()+10,this->width(),this->height()));
    //设置弹跳效果
    animation->setEasingCurve(QEasingCurve::InBounce);
    //执行动画
    animation->start();
}
void MyPushButton::zoom2()
{
    //创建动态对象
    QPropertyAnimation *animation=new QPropertyAnimation(this,"geometry");
    //设置动画时间间隔
    animation->setDuration(200);
    //起始位置
    animation->setStartValue(QRect(this->x(),this->y()+10,this->width(),this->height()));
    //结束位置
    animation->setEndValue(QRect(this->x(),this->y(),this->width(),this->height()));
    //设置弹跳效果
    animation->setEasingCurve(QEasingCurve::InBounce);
    //执行动画
    animation->start();
}
void MyPushButton::mousePressEvent(QMouseEvent *e)
{
    if(this->pressImgPath!="")
    {
        QPixmap pix;
        bool ret=pix.load(this->pressImgPath);
        if(!ret)
        {
            qDebug()<<"图片加载失败！";
            return;
        }
        //设置按钮固定大小 将按钮长宽设置为图片的长宽
        this->setFixedSize(pix.width(),pix.height());
        //设置不规则按钮样式  此处将按钮改为圆形
        this->setStyleSheet("QPushButton{border:0px;}");
        //设置图标
        this->setIcon(pix);

        //设置图标大小
        this->setIconSize(QSize(pix.width(),pix.height()));
    }
    return QPushButton::mousePressEvent(e); //将按下事件 其他的交给父类处理，这样做是为了避免上面的程序造成拦截，让鼠标按下正常进行
}

void MyPushButton::mouseReleaseEvent(QMouseEvent *e)
{
    if(this->pressImgPath!="")
    {
    QPixmap pix;
    bool ret=pix.load(this->normalImgPath);
    if(!ret)
    {
        qDebug()<<"图片加载失败！";
        return;
    }
    //设置按钮固定大小 将按钮长宽设置为图片的长宽
    this->setFixedSize(pix.width(),pix.height());
    //设置不规则按钮样式  此处将按钮改为圆形
    this->setStyleSheet("QPushButton{border:0px;}");
    //设置图标
    this->setIcon(pix);
    //设置图标大小
    this->setIconSize(QSize(pix.width(),pix.height()));
    }
    return QPushButton::mouseReleaseEvent(e);
}

